#include <stdio.h>
#include "main.h"

// 初始化队列。初始化成功返回0；初始化失败返回1。
int init_queue(Queue ** q) {
    *q = (Queue *) malloc(sizeof(Queue));
    if ((*q) != NULL)
        if ((*q) != NULL) {
            (*q)->size = 0;
            return 0;
        } else {
            return 1;
        }
}


int enqueue (Queue * q, int value){
  if(size(q)<QUEUE_MAX_SIZE) {
      q->elements[q->size] = value;
      q->size++;
      return 0;
  } else return 1;
}

int dequeue(Queue * q, int *value){
    if(q->size==0)return 1;
    *value=q->elements[0];
    int n = 0;
    while (n<q->size){
        q->elements[n]=q->elements[n+1];
        n=n+1;
    }
    q->size--;
    return 0;
}
int first(Queue * q, int * value){
    if(q->size==0)return 1;
     *value =q->elements[0];
    if(*value=NULL)return 1;
    else return 0;
}

int is_empty(Queue * q){
    if(q->size==0)return 0;
    else return 1;
}

int size(Queue * q){
    return q->size;
}

int main(){
    Queue *q;
    int value;
    init_queue(&q);
    for(int i=0;i<9;i++){
        value=i;
        enqueue(q,value);
        printf("%d\n",value);
    }
    printf("%d\n",size(q));
    is_empty(q);
    dequeue(q,&value);
    printf("%d\n",size(q));
};